Optical scanners are devices that produce machine or computer readable data representative of a scanned object, such as, for example, a page of printed text, a drawing, or a photograph. A commonly used type of optical scanner utilizes a line-focus system to focus light reflected by the object onto the surface of a detector comprising a plurality of tiny, light sensitive elements arranged along a line. Each light sensitive element of the detector corresponds to a small area location on the object being scanned and is commonly referred to as a "picture element" or "pixel." Since the light sensitive elements of the detector are arranged along a line, the electronic signals produced thereby together correspond to a line of pixels that is commonly referred to as a "scan line." Accordingly, the entire object may be scanned by moving the optical system with respect to the object so that the elements of the detector are successively exposed to adjacent scan lines on the object. As the image is scanned, data signals from the light sensitive elements of the detector are received and processed by an appropriate data processing system. The data processing system may in turn subsequently store the data on a suitable medium or generate a display signal therefrom, thus allowing an image of the object to be reproduced on a display device such as a CRT or a printer.
The image data produced by an optical scanner of the type described above can usually be regarded as continuous. That is, each pixel has an intensity value that corresponds to a particular shade of gray in a range of shades of gray that extends from black to white. Since most commonly available black and white scanners are capable of detecting 256 or even as many as 1024 separate shades of gray, the image data thus may be regarded as substantially continuous and will be referred to herein as "continuous grayscale image data," or simply "grayscale image data."
While such grayscale image data can be used to reproduce a fairly accurate image of the scanned object, they take up a substantial amount of computer memory. Consequently, it is common for the scanning utility or capture program associated with the scanner to convert the continuous grayscale image data from the scanner into a more compact form. For example, if the image being scanned comprises printed text or a simple line drawing, it is usually convenient to scan the image as a binary data type. Scanning the image as a binary data type "forces" the scanner to recognize only two shades of gray, typically black and white. Consequently, such binary image data are only capable of reproducing black and white images with no intermediate shades of gray. However, the advantage of scanning an object as a binary data type is that the resulting binary image data require much less memory for storage.
While optical scanners of the type described above may be used for a wide variety of purposes, such as to scan pictures or photos, or to scan written documents for subsequent optical character recognition (OCR), they tend to be most commonly used to scan line art drawings, i.e., drawings consisting essentially of black or dark lines on white or light colored backgrounds. When such line art drawings are scanned, it is usually with the desire to import or integrate the line-art drawings into other kinds of documents, such as reports or presentations, which themselves may be created with the aid of separate application programs, such as word processors or desktop publishing programs. While application programs exist that will allow user to import a binary image data file of scanned line art image into such a document, the scanned image reproduced thereby is often of inferior quality. For example, it is not uncommon for the scanned line art image to include stair-steps or "jaggies." Briefly, stair-steps or "jaggies" are digital image artifacts that make curved and angled lines of the image appear to be a succession of short line segments that are slightly offset from one another.
While such stair-step patterns or "jaggies" may be the result of inadequate scanning or printing resolution, they are more often the result of the various image transformation steps that are performed by the user. For example, a user will often find it necessary or desirable to change the size (i.e., scaling) or the angular orientation (i.e., rotation) of the scanned line art image to allow it to fit within space allotted in the document. However, since such transformation processes (e.g., scaling or rotation) are carried out on binary image data, the result is the creation of visible jaggies. The reason that visible jaggies are created when transforming such binary image data is that the binary image data do not contain all of the information required to accurately reproduce the precise location of the edges of the lines of the original image. While the location errors are small, they tend to accumulate with subsequent data transformation steps. Consequently, the more the image represented by the binary image data is enlarged or rotated, the worse the location errors tend to become, with the end result being the creation of visible jaggies.
As an example of this phenomenon, consider a line art image scanned at a resolution sufficiently high so that jaggies cannot be seen, typically about 600 dots per inch (dpi). If the size of the image is enlarged by a factor of three (3) by the application program, the effective resolution of the image will be reduced by a corresponding amount. That is, the effective resolution of the image will drop to about 200 dpi, a resolution low enough to result in an image having noticeable jaggies.
While it is possible to minimize the likelihood of creating jaggies in the final image by taking certain steps during the scanning process, such steps are usually inconvenient or can only be effectively carried out by highly knowledgeable and experienced users. For example, if the user knows the exact size of the image that is to be reproduced by the application program, he or she can adjust various scanning parameters, such as scanning resolution, scanning size, and the position angle of the line art image being scanned, to ensure that the resulting image data will allow for the reproduction of a substantially jaggy-free image. Unfortunately, however, it is rare for the person scanning the original line art image to know in advance the precise size of the image that is to be reproduced in the application program. Further, even if the person knows the desired size of the final image, he or she must still know how to adjust the various scanning parameters (i.e., resolution, size, position angle, etc.) to ensure a substantially jaggy-free image. In practice, it is far more common for the user to make a guess as to the size of the image in the final document, set the scanning parameters to the values that the user believes will produce a jaggy-free image, and hope for the best. In many cases, the guess is incorrect and the user must go back and re-scan the original image with different scanning parameters in the hopes that the new image data will result in a higher quality image.
Consequently, a need exists for a method and apparatus that will allow for the re-scaling and/or rotation of the scanned image data, but without the danger of creating visible jaggies in the final image. Ideally, such a method and apparatus should also dispense with the need for the user to know in advance the size of the image that is to be reproduced in the final document as well as the need to manually set the scanning parameters. Additional advantages could be realized if such a method and apparatus would allow the user to re-scale and/or rotate the image while operating within the application program. Still other advantages could be realized if such re-scaling and/or rotation operations could be carried out while minimizing the amount of storage space required for the image data.